#ifndef HPLC_QINFINE_PACKETFORMAT_H
#define HPLC_QINFINE_PACKETFORMAT_H

namespace hplc
{
namespace qinfine
{

#define TICK_TIMEOUT			500 //心跳包，ms单位

#define RETRANSMIT_TIMEOUT		250 //ms单位
#define RETRANSMIT_COUNT		0	//重发次数

#define PTR2U16(PTR) ((((quint8 *)(PTR))[0]<<8)|((quint8 *)(PTR))[1])  //从缓冲区取16位数据
#define PTR2U32(PTR) ((((quint8 *)(PTR))[0]<<24)|(((quint8 *)(PTR))[1]<<16)|(((quint8 *)(PTR))[2]<<8)|((quint8 *)(PTR))[3])  //从缓冲区取32位数据

// 通信
#define SYSTEM_COMMUNICATE_HEAD ':'//0X3A     //帧头
#define SYSTEM_COMMUNICATE_TAIL '!'//0X21     //帧尾
#define SYSTEM_COMMUNICATE_ACK '#'//0X21     //ACK
#define SYSTEM_COMMUNICATE_NACK '$'//0X21     //NACK
#define SYSTEM_COMMUNICATE_MAX_LEN	64	//最大帧长度

//
#define ERROR_TOO_LONG  1
#define ERROR_SINGULAR  2
#define ERROR_CRC       3

} // qinfine
} // hplc

#endif // HPLC_QINFINE_PACKETFORMAT_H
